$.fn.textSelection = function ( command, options ) {
var fn,
context,
- hasIframe,
+ hasWikiEditorSurface, // The alt edit surface needs to implement the WikiEditor API
needSave,
retval;
// Position to start selection at
start: undefined,
// Position to end selection at. Defaults to start
- end: undefined,
- // Element to start selection in (iframe only)
- startContainer: undefined,
- // Element to end selection in (iframe only). Defaults to startContainer
- endContainer: undefined
+ end: undefined
}, options );
if ( options.end === undefined ) {
options.end = options.start;
}
- if ( options.endContainer === undefined ) {
- options.endContainer = options.startContainer;
- }
// FIXME: We may not need character position-based functions if we insert markers in the right places
break;
case 'scrollToCaretPosition':
}
context = $( this ).data( 'wikiEditor-context' );
- hasIframe = context !== undefined && context && context.$iframe !== undefined;
+ hasWikiEditorSurface = ( context !== undefined );
// IE selection restore voodoo
needSave = false;
- if ( hasIframe && context.savedSelection !== null ) {
+ if ( hasWikiEditorSurface && context.savedSelection !== null ) {
context.fn.restoreSelection();
needSave = true;
}
- retval = ( hasIframe ? context.fn : fn )[command].call( this, options );
- if ( hasIframe && needSave ) {
+ retval = ( hasWikiEditorSurface && context.fn[command] !== undefined ? context.fn : fn )[command].call( this, options );
+ if ( hasWikiEditorSurface && needSave ) {
context.fn.saveSelection();
}